/**
 * @file         bsc_uart_adapter.h
 * @brief        串口框架_适配器
 * @note    
 * @author       Jpz(jinpuzhao@hopechart.com, 靳普诏)
 * @data         2022-7-14
 * @version      1.0
 *
 * @par          修改日志
 * <table>
 * <tr><th>Date        <th>Version               <th>Author          <th>Description
 * <tr><td>2022-7-14   <td>1.0                   <td>Jpz             <td>创建初始版本
 * @copyright    杭州鸿泉物联网技术股份有限公司
 */

#ifndef _BSC_UART_ADAPTER_H_
#define _BSC_UART_ADAPTER_H_

#include "ofc/ofc_types.h"
#include "bsc_uart_dispatch/bsc_uart_device.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * 适配器初始化
 * @return >= 0 成功
 *         < 0  失败
 */
Int32 TBsUartAdapterCreate(void);

/**
 * 适配器销毁   
 * @return 
 */
void TBsUartAdapterDestory(void);

/**
 * 获取可用串口通道数量
 * @return 串口通道数量 
 */
UInt8 TBsUartAdapterChannelCount(void);

/**
 * 获取串口设备对象指针
 * @param channel： 串口通道号
 * @return NULL表示获取失败 
 *         否则获取成功
 */
TBsUartDevice *TBsUartAdapterGetDeviceHandle(UInt8 channel);

/**
 * 获取存储分发对象内存地址
 * @param ret_disp_list: 用于返回分发对象列表地址
 *                       为NULL时，只返回允许注册的数量
 * @return 返回允许注册的总数
 */
Byte TBsUartAdapterGetDispList(void ***ret_disp_list);



#ifdef __cplusplus
} // extern "C" {
#endif


#endif // #ifndef _BSC_UART_ADAPTER_H_

